package com.ruoyi.bom.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单BOM对象 erp_order_bom
 * 
 * @author ruoyi
 * @date 2025-07-23
 */
public class ErpOrderBom extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 销售订单号，主键 */
    private String salesOrderNumber;

    /** 母件编码 */
    @Excel(name = "母件编码")
    private String parentPartNumber;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String materialName;

    /**  物料规格 */
    @Excel(name = " 物料规格")
    private String materialSpecification;

    /** 属性 */
    @Excel(name = "属性")
    private String attribute;

    /** 序列号，可能用于唯一标识物料个体 */
    @Excel(name = "序列号，可能用于唯一标识物料个体")
    private String sn;

    /** 版本日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "版本日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date versionDate;

    /** 是否转工单，0表示否，1表示是 */
    @Excel(name = "是否转工单，0表示否，1表示是")
    private Integer isTransferWorkOrder;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /**  附件上传状态 */
    @Excel(name = " 附件上传状态")
    private Long attachmentUploadStatus;

    /**  创建人 */
    @Excel(name = " 创建人")
    private String creator;

    /** 创建日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /** 最后修改人 */
    @Excel(name = "最后修改人")
    private String lastModifier;

    /** 最后修改日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastModifyDate;

    public void setSalesOrderNumber(String salesOrderNumber) 
    {
        this.salesOrderNumber = salesOrderNumber;
    }

    public String getSalesOrderNumber() 
    {
        return salesOrderNumber;
    }

    public void setParentPartNumber(String parentPartNumber) 
    {
        this.parentPartNumber = parentPartNumber;
    }

    public String getParentPartNumber() 
    {
        return parentPartNumber;
    }

    public void setMaterialName(String materialName) 
    {
        this.materialName = materialName;
    }

    public String getMaterialName() 
    {
        return materialName;
    }

    public void setMaterialSpecification(String materialSpecification) 
    {
        this.materialSpecification = materialSpecification;
    }

    public String getMaterialSpecification() 
    {
        return materialSpecification;
    }

    public void setAttribute(String attribute) 
    {
        this.attribute = attribute;
    }

    public String getAttribute() 
    {
        return attribute;
    }

    public void setSn(String sn) 
    {
        this.sn = sn;
    }

    public String getSn() 
    {
        return sn;
    }

    public void setVersionDate(Date versionDate) 
    {
        this.versionDate = versionDate;
    }

    public Date getVersionDate() 
    {
        return versionDate;
    }

    public void setIsTransferWorkOrder(Integer isTransferWorkOrder) 
    {
        this.isTransferWorkOrder = isTransferWorkOrder;
    }

    public Integer getIsTransferWorkOrder() 
    {
        return isTransferWorkOrder;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    public void setAttachmentUploadStatus(Long attachmentUploadStatus) 
    {
        this.attachmentUploadStatus = attachmentUploadStatus;
    }

    public Long getAttachmentUploadStatus() 
    {
        return attachmentUploadStatus;
    }

    public void setCreator(String creator) 
    {
        this.creator = creator;
    }

    public String getCreator() 
    {
        return creator;
    }

    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }

    public void setLastModifier(String lastModifier) 
    {
        this.lastModifier = lastModifier;
    }

    public String getLastModifier() 
    {
        return lastModifier;
    }

    public void setLastModifyDate(Date lastModifyDate) 
    {
        this.lastModifyDate = lastModifyDate;
    }

    public Date getLastModifyDate() 
    {
        return lastModifyDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("salesOrderNumber", getSalesOrderNumber())
            .append("parentPartNumber", getParentPartNumber())
            .append("materialName", getMaterialName())
            .append("materialSpecification", getMaterialSpecification())
            .append("attribute", getAttribute())
            .append("sn", getSn())
            .append("versionDate", getVersionDate())
            .append("isTransferWorkOrder", getIsTransferWorkOrder())
            .append("remarks", getRemarks())
            .append("attachmentUploadStatus", getAttachmentUploadStatus())
            .append("creator", getCreator())
            .append("createDate", getCreateDate())
            .append("lastModifier", getLastModifier())
            .append("lastModifyDate", getLastModifyDate())
            .toString();
    }
}
